package main

import "fmt"

func main() {
	//x已声明，y没有声明，判断每条语句的对错。
	//x, _ := f() //错，x已经声明
	//x, _ = f()  //对
	//x, y := f() //对，多值赋值时，:= 左边的变量无论声明与否都可以；
	//x, y = f()  //错，y没有声明

	//------------------------------------------------------

	var a A = Work{3}
	s := a.(Work)
	fmt.Println(s.ShowA()) //13
	fmt.Println(s.ShowB()) //23
}

type A interface {
	ShowA() int
}

type B interface {
	ShowB() int
}

type Work struct {
	i int
}

func (w Work) ShowA() int {
	return w.i + 10
}

func (w Work) ShowB() int {
	return w.i + 20
}
